package cloudUser.mapper;

import cloudEntity.dto.user.SmartUserRegisterDTO;
import cloudEntity.entity.SmartUserEntity;
import cloudEntity.vo.user.SmartUserVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @program: Smart School
 * @ClassName SmartUserMapper
 * @description:
 * @author: 陈智博
 * @create: 2025-03-25 10:00
 * @Version 1.0
 **/
@Mapper
public interface SmartUserMapper {

    /**
     * 根据 账号 获取  用户 信息
     * @param username 用户 账号
     * @return 返回 用户 信息
     */
    SmartUserEntity getUserByName(@Param("username") String username);

    /**
     * 查询 这个 类型 的 所有 用户
     * @param type 类型
     * @return 返回 用户 数量
     */
    Integer getUserCountByType(@Param("type") Integer type);

    /**
     * 分页查询用户
     * @param type 类型
     * @param pageNum 页码
     * @param pageSize 一页大小
     * @return 返回 的 分页数据。
     */
    List<SmartUserVO> getSmartUserByPageInfo(@Param("type") Integer type,
                                             @Param("pageNum") Integer pageNum,
                                             @Param("pageSize") Integer pageSize);

    /**
     * 用户注册
     * @param smartUserRegisterDTO 用户注册DTO
     * @return 返回 1 / 0
     */
    Integer RegisterUser(SmartUserRegisterDTO smartUserRegisterDTO);
}
